package com.xbongbong.pro.sms.pojo.dto;

import com.xbongbong.pro.sms.pojo.SmsReceiverPojo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;

/**
 * @author youli.chen
 * @version v1.0
 * @description: 短信推送  走短信队列，用于传输数据的
 * @date 2019/3/19 17:16
 * @since v1.0
 */
@Getter
@Setter
@ToString
public class SmsRabbitMqDTO implements Serializable {

    private static final long serialVersionUID = 2606082942127580247L;

    /**
     * 公司ID
     */
    @NotBlank(message="{dto.msg.smsRabbitMq.corpid.NotBlank}")
    private String corpid;

    /**
     * 用户ID
     * 注意：使用BeanUtil.convertBean2Map方法将DTO转查询map时，userId条件需要手动置入
     */
    @NotBlank(message="{dto.msg.smsRabbitMq.userId.NotBlank}")
    private String userId;

    /**
     * 发送类型:0即时发送，1定时发送
     */
    private Integer sendType;
    /**
     * 短信内容
     */
    private String content;
    /**
     * 短信发送通道类型 0：创蓝营销帐号，1:创蓝通知帐号
     */
    private Integer sendApi;
    /**
     * 发送时间，定时发送必填，时间格式为：yyyy-MM-dd HH:mm
     */
    private String dates;

    // 发送短信参数
    /**
     * 短信接收人
     */
    private List<SmsReceiverPojo> sendData;

    // 业务列表页发送短信参数
    /**
     * 业务类型："100:customer"、"401:contact"
     */
    private Integer businessType;
    /**
     * 客户id或联系人id
     */
    private List<Long> dataIdList;

    // 重新发送短信参数
    /**
     * 短信id列表
     */
    private List<Long> smsIdIn;

    /**
     * 号码取号范围
     */
    private Integer numberType;

    public SmsRabbitMqDTO() {
    }

    public SmsRabbitMqDTO(String corpid, String userId, Integer sendType, String content, Integer sendApi, String dates, List<SmsReceiverPojo> sendData, Integer businessType, List<Long> dataIdList, List<Long> smsIdIn) {
        this.corpid = corpid;
        this.userId = userId;
        this.sendType = sendType;
        this.content = content;
        this.sendApi = sendApi;
        this.dates = dates;
        this.sendData = sendData;
        this.businessType = businessType;
        this.dataIdList = dataIdList;
        this.smsIdIn = smsIdIn;
    }
}
